Mybatis中ORACLE存储过程基本调用(带in和out参数) - jiulanhao的博客 - CSDN博客

创建时间:2018/11/13 9:07
来源:https://blog.csdn.net/jiulanhao/article/details/80655627

首先存储过程,内容是根据名字查工作和部门

  1. 1
    create or replace procedure manyparm(tname in varchar2,
  2. 2
    tjob out varchar2,
  3. 3
    tdept out varchar2)
  4. 4
    is
  5. 5
    begin
  6. 6
  7. 7
    select t.job,t.dept
  8. 8
    into tjob,tdept
  9. 9
    from test_procedure t
  10. 10
    where t.name = tname;
  11. 11
  12. 12
    end manyparm;

XML的编写

  1. 1
    <select id="manyparm" statementType="CALLABLE">
  2. 2
  3. 3
    {
  4. 4
    call manyparm(
  5. 5
  6. 6
    #{tname,mode=IN,jdbcType=VARCHAR},
  7. 7
  8. 8
    #{tjob,mode=OUT,jdbcType=VARCHAR},
  9. 9
  10. 10
    #{tdept,mode=OUT,jdbcType=VARCHAR}
  11. 11
  12. 12
    )
  13. 13
  14. 14
    }
  15. 15
  16. 16
    </select>

此处重点在于 statementType为"CALLBLE"

mapperDao接口的编写 大坑在此

public void manyparm(Emp emp);

他他喵的据说是没有返回值!!!!!!!!


service的编写

  1. 1
    public Emp manyparm(String str) {
  2. 2
    // TODO Auto-generated method stub
  3. 3
  4. 4
    Emp emp = new Emp();
  5. 5
  6. 6
    emp.setTname(str);
  7. 7
  8. 8
    empMapper.manyparm(emp);
  9. 9
  10. 10
    System.out.println(emp.getTjob()+","+emp.getTname()+","+emp.getTdept());
  11. 11
  12. 12
    return null;
  13. 13
    }

内容是往entity传入姓名,然后调用Mapper的存储过程重点是特么的没有返回值!!!!

然后实体类里已经set好参数。。。。。。entity调用既可调出out参数。。。。。。

没返回值大坑。。。